from loguru import logger
import sys
import os

def setup_logging():
    """配置 Loguru 日志系统"""

    # 移除默认控制台输出（可选）
    logger.remove()

    log_format = "<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>"
    # 添加控制台输出（开发环境）
    logger.add(
        sys.stdout,  # 控制台输出
        format=log_format,
        level="INFO",  # 设置日志级别
        colorize=True,  # 启用颜色
        enqueue=True  # 异步写入，提高性能
    )

    # 添加文件日志输出（按天分割，保留7天）
    log_dir = "logs"
    if not os.path.exists(log_dir):
        os.makedirs(log_dir)
    logger.add(
        sink=os.path.join(log_dir, "app_{time:YYYY-MM-DD}.log"),
        rotation="00:00",  # 每天轮换
        retention="7 days",  # 保留30天
        compression="zip",  # 压缩旧日志
        level="INFO",
        format=log_format,
        enqueue = True  # 异步写入，提高性能
    )
    # 可选：添加错误日志文件，只记录 ERROR 及以上级别
    # logger.add(
    #     sink=os.path.join(log_dir, "errors_{time:YYYY-MM-DD}.log"),
    #     format=log_format,
    #     level="ERROR",
    #     rotation="00:00",
    #     retention="14 days",
    #     compression="zip",
    #     enqueue=True
    # )

setup_logging()